For example, a buffer (hereinafter referred to as shared receive buffer) that is, for example, a shared receive queue (SRQ) for Infiniband and stores packets received from a plurality of nodes, processes, or the like is known.
FIG. 1 is an example of a system that uses the shared receive buffer. In the example illustrated in FIG. 1, a receiving node has a shared receive buffer 1000. The receiving node temporarily stores packets received from transmitting nodes #1 and #2 in the shared receive buffer 1000. Then, the receiving node sequentially processes the packets stored in the shared receive buffer 1000.
For example, in a system that includes a single transmitting node and a single receiving mode, a source of packets may estimate, based on the number of the packets transmitted by the source and the sizes of the transmitted packets, whether or not a buffer has an available region. However, since packets transmitted by the plurality of sources are stored in the shared receive buffer in the system illustrated in FIG. 1, the sources of the packets do not recognize whether or not the shared receive buffer has an available region. Thus, the sources may transmit packets regardless of the fact that the shared receive buffer does not have an available region, overflow may occur from the shared receive buffer, and a transmitted packet may be discharged.
Thus, for the case where overflow occurs from the shared receive buffer, each of the source nodes or processes is requested to have a function of retransmitting a packet in the system that uses the shared receive buffer.
For retransmission of a packet in a system that includes a transmitting device and a receiving device, there is the following technique. Specifically, the receiving device transmits, to the transmitting device, an order number described in the packet and a reception expectation order number that is an order number provided for the case where it is assumed the data packet is transmitted without a loss. The transmitting device specifies a lost packet based on information received from the receiving device and retransmits the lost packet.
The aforementioned technique assumes a loss that occurs when a packet is discarded due to a bit error on a transmission path or congestion. The technique, however, does not assume that a measure is taken for a packet discarded due to the occurrence of overflow from a buffer. If overflow occurs from the buffer, and the discarded packet is immediately retransmitted, the overflow from the buffer may not be solved and the packet may be discarded again. In addition, the receiving device used for the aforementioned technique does not have a buffer corresponding to the shared receive buffer.
Thus, the aforementioned conventional technique does not support retransmission to be executed when overflow occurs from the shared receive buffer.
Japanese Laid-open Patent Publication No. 2001-168907 is an example of related art.
According to an aspect, an object of the embodiment is to provide a technique for efficiently retransmitting a packet when overflow occurs from a shared receive buffer.